<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
	</body>
</html>
<script>
	//js里面的数据类型
	//null undefined 值一样 定义不一样
	
	//js 里面还有一种数据类型 object
	//js里面的所有数据类型都是对象类型
//	var per = {
//		"name": "dandan",
//		"gender": "公"
//	}
	//js里面的数据类型
//	number 5, 5.6, 3.600
// String :"hahfla" 'hakshfg'
// Boll true false
// null == 空,  类型 == 空
// undefined 值 == 空   类型 == 未定义
// null == undefined --> true
// ===  绝对等于 不仅判断值  还要判断类型
// null === undefined -->false
// Object.tostring()  对象类型
// Array 
//  {}
// function

//	var a = [4, 5, 6];
//	a.toString();
//	console.log(a);
	
//	var b = new Number(8);
//	b.toString();
//	
//	var c = 2;
//	c.toString();

//	对象的原型链
//	function xxx() {
//		var a = 4;
//		var b = 5;
//	}
//	var yyy = new xxx();
//	console.log(yyy);
	
//	js里面的所有的数据类型都是对象

//	var a = 5;
//	var b = new Number(5);
//	a.toString()
//	a 是一个对象
//	a 对象里面有两个属性'x' 和 'y'
//	每一个属性都有值1 和 2 
//	{属性名: 值, 属性名: 值}
//
//	属性名 与 值 之间用 : 隔开
//	不同之间属性用 , 隔开
//	
//	
//	一般用字符串来做属性名
//	也可以不用字符串
//	会默认帮你转化成字符串
//	而值可以使任意的形式

//	var a = {
//		'x': 1,
//		'y': 2,
//		z: 6
//	};
//	console.log(a);
//	
//	a.z = 3;
//	console.log(a);
//	
//	a["z", "y", "x"] = 4;
//	a["z", "y"] = 4;
//	console.log(a);

//	对象属性的访问和设置
//	可以用点语法来访问和设置对象的属性值
//	Eg: a.x   a.x = 6;
//	可以用数组+ ,运算符 的方式
//	Eg: a ["y", "x"]    a["y","x"] = 6;
//	Eg: a["x"]          a["x"] = 6;


//	,运算符
//	通过,把不同的表达式分开
//	取值的时候 取最后一个表达式
	
	
//	定义了一个名字为xxx的函数
//	函数本身就是一个对象
//	function xxx() {};
                              //	prototype属性使您有能力向对象添加属性和方法
//	xxx.prototype.b = 6;
//	var yyy = new xxx();
//	yyy.a = 5;
//	yyy.b = 7;
//	yyy.c = 9;
//	console.log(yyy.b);

		
//	原型链  属性的继承
//	如果自己有用自己的  如果自己没有      用自己的原型的(也就是自己的爹的)
//
//
//	修改
//	如果自己有    改自己的  
//	如果自己没有  给自己添加
//	总之一句话
//	只能用爹的   不能动爹的
//	也就是爹的东西只能看不能改
	

//	对象的层次结构
//	对象套对象
//	var a = {
//		x: 1,
//		y: 2,
//		b: {c: 3, d: 4},
//		z: 5
//	};

							  //hasOwnProperty() 函数用于指示一个对象自身(不包括原型链)是否具有指定名称的属性。如果有，返回true，否则返回false。
//该方法属于Object对象，由于所有的对象都"继承"了Object的对象实例，因此几乎所有的实例对象都可以使用该方法。


//	b.hasOwnProperty("c");
//	a.b.c == 3;
//	console.log(a.b.c);
//	a.hasOwnProperty("c");
//	查看自己是否拥有属性x
//	console.log(a.hasOwnProperty("c"));




							//	delete 删除
//	delete操作,到底成功还是失败
//	主要该属性能不能被操作
//	console.log(delete b.x);
//	console.log(b);
//	
//	delete b.x
//	删除 b 对象的属性 x
//	如果属性x是可操作的 delete 返回true
//	如果属性x是不可操作的  delete返回false
//	
//	
//	从父集继承过来的东西
//	孩子是不能删除的
	
//	一般的属性  默认是可读可写
//	一般的属性 默认是可操作的  -----> delete
//	delete 是管用的 --> true
//	如果一个属性 被修饰成不可操作的
//	delete 不管用了 --> false

	
//	对象属性权限的问题
//	var die = {name: 213, minThree: "dandan"};
//	下面的方法 返回的是有关"minThree"属性的一些介绍
//	并且这些介绍是被包装到一个对象中返回出来的
//	var propertyDescription = Object.getOwnPropertyDescriptor(die, "minThree");
//	console.log(propertyDescription);


//	var j = obj.xxx(4, 5);
//	console.log(delete die.minThree);
//	console.log(delete die.minThree);
//	console.log(die.minThree);
//	
//	
//	属性的权限
//	
//	value writealbel enmualble configable
//	属性的遍历
//	for 添加给对象的属性
//	var a = {x0: 1, x1: 2, x2: 3};
//	console.log(a["x0"]);
//	
//	
//	普通的for循环
//	通过变量因子 i 来遍历对象中的每一个属性
//	其中这些属性必须是有规律的
//	for (var i = 0; i < 3; i++) {
//		console.log(a["x" + i]);
//	}
//
//	var person1 = {name: "dandan", age: 32, gender: "熊", number: 37};
//	
//	对象里面的属性是无序的
//	
//	for ..x.. in ..person1..
//	person1 属性的枚举
//	var x;
//	for (x in person1) {
//		console.log(x);
//		
//	}
//	
//	console.log(x);
//	console.log(a.x1);




刚收到货是东方红;了林李时代;返回






 







</script>